package com.mfin.enumeration;

import java.util.EnumSet;

//Transaction
// cid, date, account head, credit, debit
public enum AccountHead {

	ADVISOR_FEE("Advisor fee"), // person name
	AGENT_COMMISSION("Agent commission"), // PERSON NAME
	LOAN_RECOVERY_CHARGE("Loan recovery charge"), // person name

	BONUS_SALARY("Bonus salary"), // person name
	TAX_DEDUCTION_AT_SOURCE("Tax deduction at source"), // person name
	SHARE_INCOME("Share income"), // DOUBT
	ACCOUNT_NOTICE("Account notice"), // DOUBT person name, towards
	INCOME_TAX("Income tax"), // person name

	SALARY_PAYMENT("Salary payment"), // person name
	PARTNER_SALARY("Partner salary"), // Doubt individual/ in an whole
	MEETING_FEE("Meeting fee"), // -
	HOUSE_RENT("House rent"), // person name
	STAMPS_REGN_FEE("Stamps and registration fee"), // person name, stamp
													// papers/ revenue stamp
	ADVERTISEMENT("Advertisement"), // quantity, item, MRP
	ELECTRICITY_BILL("Electricity bill"), // r number
	MOBILE_RECHARGE("Mobile recharge"), // person name, purchase/recharge/ bill
										// payment
	TELEPHONE_BILL("Telephone bill"), UTILITIES("Utilities"), // Doubt person

	FURNITURE("Furniture"), // -
	COMPUTER("Computer"),

	MISC_EXPENSE("Miscellaneous"), // person name, purpose, Description
	// OCCATION_EXPENSE(),//occasion, person name, item, quantity, item cost
	BANK_TRANSACTION("Bank transaction"), // bank name, person name, transaction
											// mode, cheque no, transaction type
	CAPITAL("Capital"), // Doubt partner id, person name, transaction type
	// CAPITAL_INTEREST(),//-
	TRADE_DEBTORS("Trade debtors"), // person name
	SAVINGS("Savings"), // Doubt partner id, person name, transaction mode
	FIXED_DEPOSIT("Fixed deposit"), // account number, transaction type
									// (deposit, interest)

	CD("CD Loan"), TBD("TBD Loan"), STBD("STBD Loan"), SPL("SPL Loan"), CCD(
			"CCD Loan");

	private final String value;

	private AccountHead(String value) {
		this.value = value;
	}

	public String toString() {
		return value;
	}

	public AccountHead getByValue(String value) {
		AccountHead returnAccountHead = null;
		if (value != null) {

			for (AccountHead element : EnumSet.allOf(AccountHead.class)) {
				if (value.equals(element.toString())) {
					returnAccountHead = element;
				}
			}
		}
		return returnAccountHead;
	}
}
/*
 * http://www.ehow.com/list_6495418_types-business-expenses.html
 * http://www.ehow.
 * com/list_6331610_accounting-basics_-types-expense-accounts.html
 * 
 * http://biztaxlaw.about.com/od/businessaccountingrecords/a/bizexpenses.htm
 * http://www.teamlex.com/Areas/IncomeExpense.pdf
 * 
 * http://j2eereference.com/2011/01/implementing-composit-primary-key-with-jpa-and
 * -hibernate/
 * 
 * Startup Expenses - advertising costs, license fees, accounting fees, attorney
 * fees, expenses of office supplies, and market research Startup expenses also
 * include all operating expenses acquired before the business formally
 * commences operation, cost of researching potential markets and/or products,
 * cost of employee training and all expenses that are related to obtaining
 * customers, suppliers, distributors or financing for the business.
 * 
 * 
 * Operating Expenses - day-to-day costs that are required by a company to stay
 * general expenses - Expenses incurred in managing and supervising a business
 * selling expenses - related to the marketing activities of the firm Salaries,
 * travel expenses, supplies, utilities, rent, repair, maintenance, and car/fuel
 * expenses
 * 
 * Capital Expenses - assets that have a useful life of more than a year
 * patents, machinery, furniture, vehicles, equipment and books
 * 
 * Inventory Costs - Inventory costs include all those indirect and direct costs
 * associated with keeping inventory on hand. They include taxes, insurance,
 * tracking and storage costs, losses (due to theft or deterioration) and
 * shortage costs. raw material, work-in-progress and finished goods.
 * Non-Operating Expenses (or Other Expenses) - corporate income taxes are often
 * placed in this category.
 * 
 * Employee and Officer Expense - The total for all forms of travel and lodging
 * will correctly appear in the travel or travel and entertainment account
 * 
 * 
 * Location costs - mortgage on a building, or rent on a leased office or retail
 * space, or a part of the mortgage on a home Utilities, Phone, and Computer
 * Expenses - electric, gas, water, sewer, and other city services like trash
 * pickup, cell phones and computer Internet lines Other services/maintenance -
 * lawn mowing, snow removal, and other outside costs Insurances Wages,
 * Salaries, Payroll Taxes, and Benefits Supplies - including office supplies
 * and materials Professional Fees - paid to your attorney and CPA/tax advisor.
 * Loan and Lease Payments - Advertising and Marketing Costs - Travel and
 * Entertainment - Taxes - Miscellaneous Application Development Software
 * maintenance
 * 
 * Startup expenses Operating expenses Professional fees Capital expenses
 * Non-Operating expenses Travel and entertainment
 */